package mtt.us.domain;

import java.util.List;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * @author   hyphen
 */
@Entity
@Table(name="fachbereich")
public class Fachbereich {

	/**
	 * enthält die Hochschule des Fachbereichs
	 */
	private Hochschule hochschule;

	/**
	 * enthält die Id des Fachbereichs
	 * @uml.property  name="id"
	 */
	private int id;
	
	/**
	 * enthält die Nummer des Fachbereichs
	 * @uml.property  name="fachbereichNummer"
	 */
	private int fachbereichNummer;
	
	/**
	 * enthält alle Studiengänge des Fachbereichs
	 * @uml.property  name="listStudiengaenge"
	 */
	private List<Studiengang> listStudiengaenge;

	/**
	 * enthält den Namen des Fachbereichs
	 * @uml.property  name="name"
	 */
	private String name;
	
	/**
	 * enthält den vollständigen Namen des Fachbereich, Bsp: "Informatik und Kommunikations-Systeme"
	 * @uml.property  name="nameFull"
	 */
	private String nameFull;
	
	/**
	 * @return
	 * @uml.property  name="hochschule"
	 */
	@ManyToOne
	@JoinColumn(name="hochschul_id")
	public Hochschule getHochschule() {
		return hochschule;
	}

	/**
	 * @return
	 * @uml.property  name="id"
	 */
	@Id	
	@GeneratedValue
	public int getId() {
		return id;
	}

	/**
	 * @return
	 * @uml.property  name="listStudiengaenge"
	 */
	@OneToMany
	@JoinColumn(name="fachbereich_id")
	public List<Studiengang> getListStudiengaenge() {
		return listStudiengaenge;
	}

	/**
	 * @return
	 * @uml.property  name="name"
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param hochschule
	 * @uml.property  name="hochschule"
	 */
	public void setHochschule(Hochschule hochschule) {
		this.hochschule = hochschule;
	}

	/**
	 * @param id
	 * @uml.property  name="id"
	 */
	public void setId(int id) {
		this.id = id;
	}

	/**
	 * @param listStudiengaenge
	 * @uml.property  name="listStudiengaenge"
	 */
	public void setListStudiengaenge(List<Studiengang> listStudiengaenge) {
		this.listStudiengaenge = listStudiengaenge;
	}

	/**
	 * @param name
	 * @uml.property  name="name"
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return
	 * @uml.property  name="nameFull"
	 */
	public String getNameFull() {
		return nameFull;
	}

	/**
	 * @param nameFull
	 * @uml.property  name="nameFull"
	 */
	public void setNameFull(String nameFull) {
		this.nameFull = nameFull;
	}

	/**
	 * @return
	 * @uml.property  name="fachbereichNummer"
	 */
	public int getFachbereichNummer() {
		return fachbereichNummer;
	}

	/**
	 * @param fachbereichNummer
	 * @uml.property  name="fachbereichNummer"
	 */
	public void setFachbereichNummer(int fachbereichNummer) {
		this.fachbereichNummer = fachbereichNummer;
	}
}
